Organisations such as banks, life assurance and pension providers and other similar financial services organisations have to maintain computer records and conduct financial and other transactions on behalf of their customers and their agents.
The computer systems used by these organisations often comprise a variety of relational and hierarchical databases and other file types which have been commissioned and developed piecemeal with a single specific purpose in mind and without the overall aim of creating a single integrated system. Systems of this type are known as legacy systems.
Many organisations attempted a wholesale rewrite of their legacy systems in the early-mid 1990s and discovered that it was much more complex than they had anticipated. Many of the projects failed, or left another legacy of half-finished applications, or applications that were suitable only for read-only use.
Migrating away from legacy systems is difficult for a variety of reasons: older systems were often built as ‘monolithic’ systems, this means the system does not function as a series of communicating components; rather, it acts as a whole, or not at all. This makes modernising the system a tricky process, in that it is difficult to modernise a piece at a time, since all the pieces are tightly coupled. Software projects will typically work better if they are smaller, but this option is not present with many legacy systems; hence, the difficulties experienced in many modernisation programmes.
Modern tooling does not support legacy systems including hierarchical databases and VSAM files and software developers have little or no experience of them.
It is easy to envisage an ideal approach to modernising systems which involves throwing away all of the legacy systems and writing them again from scratch. However, such an approach would be extremely expensive.